IF exists(SELECT * FROM dbo.sysobjects WHERE name='vulEvolutieHulptabel' AND xtype='P') 
BEGIN
	DROP PROCEDURE vulEvolutieHulptabel
END
GO

create procedure vulEvolutieHulptabel  @jaar1 char(4)= '1994'
as
declare @jaar2 char(4)
declare @jaar3 char(4)
declare @jaar4 char(4)
declare @jaar5 char(4)
declare @jaar6 char(4) 

set @jaar2 = convert(varchar,convert(int,@jaar1) + 1)
set @jaar3 = convert(varchar,convert(int,@jaar1) + 2)
set @jaar4 = convert(varchar,convert(int,@jaar1) + 3)
set @jaar5 = convert(varchar,convert(int,@jaar1) + 4)
set @jaar6 = convert(varchar,convert(int,@jaar1) + 5)

declare @werktabel1 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel1
insert @werktabel1(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar1 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar1) as b
on b.inschrijvingsNr = l.inschrijvingsNr


declare @werktabel2 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel2
insert @werktabel2(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar2 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar2) as b
on b.inschrijvingsNr = l.inschrijvingsNr


declare @werktabel3 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel3
insert @werktabel3(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar3 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar3) as b
on b.inschrijvingsNr = l.inschrijvingsNr


declare @werktabel4 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel4
insert @werktabel4(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar4 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar4) as b
on b.inschrijvingsNr = l.inschrijvingsNr


declare @werktabel5 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel5
insert @werktabel5(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar5 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar5) as b
on b.inschrijvingsNr = l.inschrijvingsNr


declare @werktabel6 table(
inschrijvingsNr char(7) null,
klas char(5) null,
jaar char(4) null,
attest char(5) null,
cijfer char(3) null)

delete from @werktabel6
insert @werktabel6(inschrijvingsNr,klas,jaar,attest,cijfer)
select case when b.inschrijvingsNr is Null then l.inschrijvingsNr
	else b.inschrijvingsNr end, 
	case when b.klas is Null then l.klas
	else b.klas end,
	case when b.jaar is Null then l.jaar
	else b.jaar end,
	b.attestCode,l.tot4  
from (select inschrijvingsNr, klas,jaar,tot4 from loopbaan where jaar = @jaar6 and vakCode ='AT') as l
full join (select inschrijvingsNr,jaar,klas,attestcode from beslis where jaar= @jaar6) as b
on b.inschrijvingsNr = l.inschrijvingsNr


delete from evolutieHulptabel

insert evolutieHulptabel(inschrijvingsNr,klas1,jaar1,res1,attest1,
	klas2,jaar2,res2,attest2,
	klas3,jaar3,res3,attest3,
	klas4,jaar4,res4,attest4,
	klas5,jaar5,res5,attest5,
	klas6,jaar6,res6,attest6)
select l.inschrijvingsNr, 
	w1.klas,@jaar1,w1.cijfer,w1.attest,
	w2.klas,@jaar2,w2.cijfer,w2.attest,
	w3.klas,@jaar3,w3.cijfer,w3.attest,
	w4.klas,@jaar4,w4.cijfer,w4.attest,
	w5.klas,@jaar5,w5.cijfer,w5.attest,
	w6.klas,@jaar6,w6.cijfer,w6.attest
from alleGestarteLln as l
	full join @werktabel1 as w1 
		on l.inschrijvingsNr = w1.inschrijvingsNr
	full join @werktabel2 as w2
  	  	on l.inschrijvingsNr = w2.inschrijvingsNr
	full join @werktabel3 as w3
  	  	on l.inschrijvingsNr = w3.inschrijvingsNr
	full join @werktabel4 as w4
  	  	on l.inschrijvingsNr = w4.inschrijvingsNr
	full join @werktabel5 as w5
  	  	on l.inschrijvingsNr = w5.inschrijvingsNr
	full join @werktabel6 as w6
  	  	on l.inschrijvingsNr = w6.inschrijvingsNr